/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package test.net.sourceforge.pmd.symboltable; import junit.framework.TestCase; import net.sourceforge.pmd.PMD; import net.sourceforge.pmd.TargetJDK1_4; import net.sourceforge.pmd.ast.ASTCompilationUnit; import net.sourceforge.pmd.ast.ASTInitializer; import net.sourceforge.pmd.ast.ASTVariableDeclaratorId; import net.sourceforge.pmd.ast.JavaParser; import net.sourceforge.pmd.symboltable.SymbolFacade; import java.io.StringReader; import java.util.List; public class AcceptanceTest extends TestCase { public void testClashingSymbols() { JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST1)); ASTCompilationUnit c = parser.CompilationUnit(); SymbolFacade stb = new SymbolFacade(); stb.initializeWith(c); } public void testInitializer() { JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST_NON_STATIC_INITIALIZER)); ASTCompilationUnit c = parser.CompilationUnit(); ASTInitializer a = (ASTInitializer)(c.findChildrenOfType(ASTInitializer.class)).get(0); assertFalse(a.isStatic()); } public void testStaticInitializer() { JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST_STATIC_INITIALIZER)); ASTCompilationUnit c = parser.CompilationUnit(); ASTInitializer a = (ASTInitializer)(c.findChildrenOfType(ASTInitializer.class)).get(0); assertTrue(a.isStatic()); } public void testFindFieldDecl() { JavaParser parser = (new TargetJDK1_4()).createParser(new StringReader(TEST4)); ASTCompilationUnit c = parser.CompilationUnit(); SymbolFacade stb = new SymbolFacade(); stb.initializeWith(c); List children = c.findChildrenOfType(ASTVariableDeclaratorId.class); ASTVariableDeclaratorId v1 = (ASTVariableDeclaratorId)children.get(0); } private static final String TEST1 = "import java.io.*;" + PMD.EOL + "public class Foo {" + PMD.EOL + " void buz( ) {" + PMD.EOL + " Object o = new Serializable() { int x; };" + PMD.EOL + " Object o1 = new Serializable() { int x; };" + PMD.EOL + " }" + PMD.EOL + "}" + PMD.EOL; private static final String TEST_NON_STATIC_INITIALIZER = "public class Foo {" + PMD.EOL + " {} " + PMD.EOL + "}" + PMD.EOL; private static final String TEST_STATIC_INITIALIZER = "public class Foo {" + PMD.EOL + " static {} " + PMD.EOL + "}" + PMD.EOL; private static final String TEST4 = "public class Foo {" + PMD.EOL + " String bar; " + PMD.EOL + " String baz; " + PMD.EOL + "}" + PMD.EOL; }